﻿using System;
using System.Collections.Generic;
using System.Text;
using RC.ControlAcceso.BaseDatos;
using System.Data;
using RC.CodigoBarras.Utiles;
using RC.ControlAcceso.BaseDatos.GestionHorariaTableAdapters;
using System.Web.Caching;

namespace RC.ControlAcceso.ObjetosNegocio
{
    public class CA2Autorizante
    {
        #region Variables
        private int _IdSector;
        private int _IdUsuario;
        private DateTime _FechaAlta;
        private DateTime _FechaBaja;
        #endregion

        #region Propiedades

        public int IdSector
        {
            get { return _IdSector; }
            set { _IdSector = value; }
        }
        public int IdUsuario
        {
            get { return _IdUsuario; }
            set { _IdUsuario = value; }
        }
        public DateTime FechaAlta
        {
            get { return _FechaAlta; }
            set { _FechaAlta = value; }
        }
        public DateTime FechaBaja
        {
            get { return _FechaBaja; }
            set { _FechaBaja = value; }
        }
        #endregion
        
        #region Interfase DAL
        //objeto de la capa DAL
        private static CAAutorizanteTableAdapter _AutorizanteAD;
        protected static CAAutorizanteTableAdapter Adaptador
        {
            get
            {
                if (_AutorizanteAD == null)
                    _AutorizanteAD = new CAAutorizanteTableAdapter();

                return _AutorizanteAD;
            }
        }
        /// <summary>
        /// Devuelve la cantidad de elementos insertados
        /// </summary>
        /// <param name="pIdSector"></param>
        /// <param name="pIdUsuario"></param>
        /// <param name="pFechaAlta"></param>
        /// <param name="pFechaBaja"></param>
        /// <returns></returns>
        public static int Insertar(int pIdSector, int pIdUsuario, DateTime pFechaAlta, DateTime? pFechaBaja)
        {
            return Adaptador.Insertar(pIdSector, pIdUsuario, pFechaAlta, pFechaBaja);
        }
        public static bool Actualizar(int pIdSector, int pIdUsuario, DateTime? pFechaBaja)
        {
            if (0 < Adaptador.Actualizar(pFechaBaja, pIdSector, pIdUsuario))
                return true;
            else
                return false;
        }
        public static void Eliminar(int pIdSector, int pIdUsuario)
        {
            Adaptador.Eliminar(pIdSector, pIdUsuario);
        }
        #endregion
    }
    public class CA2AutorizanteColeccion : System.Collections.CollectionBase
    {
        public void Add(CA2Autorizante pAutorizante)
        {
            this.List.Add(pAutorizante);
        }
        public void Remove(int index)
        {
            if (index <= Count - 1 || index >= 0)
            {
                this.List.RemoveAt(index);
            }
            else
            {
                throw new System.ArgumentException("Fuera de rango", "original");
            }
        }
        public CA2Autorizante this[int index]
        {
            get { return ((CA2Autorizante)(this.List[index])); }
            set { this.List[index] = value; }
        }
    }
}
